package cn.neu.leon.util;

public class AdverbDict {
	// 最 2
	private final static String[] most = { "百分之百", "倍加", "备至", "不得了", "不堪",
			"不可开交", "不亦乐乎", "不折不扣", "彻头彻尾", "充分", "到头", "地地道道", "非常", "极",
			"极度", "极端", "极其", "极为", "截然", "尽", "惊人地", "绝", "绝顶", "绝对", "绝对化",
			"刻骨", "酷", "满", "满贯", "满心", "莫大", "奇", "入骨", "甚为", "十二分", "十分",
			"十足", "死", "滔天", "痛", "透", "完全", "完完全全", "万", "万般", "万分", "万万",
			"无比", "无度", "无可估量", "无以复加", "无以伦比", "要命", "要死", "已极", "已甚", "异常",
			"逾常", "贼", "之极", "之至", "至极", "卓绝", "最为", "佼佼", "郅", "綦", "齁", "最" };
	// 超 1.5
	public final static String[] over = { "不为过", "超", "超额", "超外差", "超微结构",
			"超物质", "出头", "多", "浮", "过", "过度", "过分", "过火", "过劲", "过了头", "过猛",
			"过热", "过甚", "过头", "过于", "过逾", "何止", "何啻", "开外", "苦", "老", "偏", "强",
			"溢", "忒" };
	// 很 1.25
	public final static String[] very = { "不过", "不少", "不胜", "惨", "沉", "沉沉",
			"出奇", "大为", "多", "多多", "多加", "多么", "分外", "格外", "够瞧的", "够戗", "好",
			"好不", "何等", "很", "很是", "坏", "可", "老", "老大", "良", "颇", "颇为", "甚",
			"实在", "太", "太甚", "特", "特别", "尤", "尤其", "尤为", "尤以", "远", "着实", "曷",
			"碜" };
	// 较 1.2
	public final static String[] more = { "大不了", "多", "更", "更加", "更进一步", "更为",
			"还", "还要", "较", "较比", "较为", "进一步", "般", "那么", "那样", "强", "如斯", "益",
			"益发", "尤甚", "逾", "愈", "愈 ... 愈", "愈发", "愈加", "愈来愈", "愈益", "远远",
			"越 ... 越", "越发", "越加", "越来越", "越是", "这般", "这样", "足", "足足" };
	// 稍 0.8
	public final static String[] ish = { "点点滴滴", "多多少少", "怪", "好生", "还",
			"或多或少", "略", "略加", "略略", "略微", "略为", "蛮", "稍", "稍稍", "稍微", "稍为",
			"稍许", "挺", "未免", "相当", "些", "些微", "些小", "一点", "一点儿", "一些", "有点",
			"有点儿", "有些" };
	// 欠 0.5
	public final static String[] insufficiently = { "半点", "不大", "不丁点儿", "不甚",
			"不怎么", "聊", "没怎么", "轻度", "弱", "丝毫", "微", "相对" };

	private final static String[] not = { "不", "没", "无", "非", "莫", "弗", "毋",
			"勿", "未", "否", "别", "無", "休", "不曾", "未必", "没有", "不要", "难以", "未曾" };

	public static double degree(String str) {
		for (int i = 0; i < most.length; i++) {
			if (most[i].equals(str))
				return 2.0;
		}
		for (int i = 0; i < over.length; i++) {
			if (over[i].equals(str))
				return 1.5;
		}
		for (int i = 0; i < very.length; i++) {
			if (very[i].equals(str))
				return 1.25;
		}
		for (int i = 0; i < more.length; i++) {
			if (more[i].equals(str))
				return 1.2;
		}
		for (int i = 0; i < ish.length; i++) {
			if (ish[i].equals(str))
				return 0.8;
		}
		for (int i = 0; i < insufficiently.length; i++) {
			if (insufficiently[i].equals(str))
				return 0.5;
		}
		return 1.0;
	}

	public static int negative(String str) {
		for (int i = 0; i < not.length; i++) {
			if (not[i].equals(str))
				return -1;
		}
		return 0;
	}
}
